package nsn.excel.read.readmodel;

import nsn.excel.read.ExcelRead;

import java.io.InputStream;
import java.util.List;
import java.util.Map;

public interface ModelExcelRead extends ExcelRead {
    /**
     * 通过model模板 解析Excel的数据
     * @param modelPath 模板文件
     * @param filePath 数据文件
     * @author caq
     * @return
     */
    Map<String,Object> modelParseData(String modelPath, String filePath);


    /**
     * 通过model模板 解析Excel的数据
     * @param modelStream 模板输入流
     * @param fileStream  数据输入流
     * @param suffix 判断是什么格式 xls/xlsx
     * @author caq
     * @return
     */
    Map<String,Object> modelParseData(InputStream modelStream, InputStream fileStream, String suffix);


    /**
     * 通过model模板 解析Excel的数据
     * 推荐项目启动的时候缓存一个模板的的List 用的时候直接赋值进去
     * 避免重复读取模板浪费资源
     * @param modelData 模板解析后的数据
     * @param fileStream  数据输入流
     * @param suffix 判断是什么格式 xls/xlsx
     * @author caq
     * @return
     */
    Map<String,Object> modelParseData(List<Map<String,Object>>  modelData, InputStream fileStream, String suffix);

    /**
     * 通过model模板 解析Excel的数据
     * 推荐项目启动的时候缓存一个模板的的List 用的时候直接赋值进去
     * 避免重复读取模板浪费资源
     * @param modelData 模板解析后的数据
     * @param fileData  数据输入流
     * @author caq
     * @return
     */
    Map<String,Object> parseData(List<Map<String,Object>>  modelData, List<Map<String,Object>>  fileData);
}
